﻿using System;
using System.Collections.Generic;
using CID.Domain.Development;
namespace CID.Domain.Operations
{
    public interface IServerRole : IDescribedEntity
    {
        bool Enabled { get; set; }

        IEnumerable<IServerAssignment> Assignments { get; }
        IEnumerable<IComponent> Components { get; }

        void Assign(IServer server, IEnvironment environment);
        void Unassign(IServer server, IEnvironment environment);

        void AddAssignment(IServerAssignment assignment);
        void RemoveAssignment(IServerAssignment assignment);

        void AddComponent(IComponent component);
        void RemoveComponent(IComponent component);
    }
}
